<?php
/**
 * vanephp web framework
 * 配置工具类
 *
 * @author aray <ofree@qq.com>
 * @link http://www.vanephp.com/
 * @copyright Copyright &copy; 2010 aray
 * @license http://www.vanephp.com/license
 * @package core
 */

if ( ! defined ( 'INVANE' ) )
	exit ( '!' );

/**
 * 配置文件工具类
 * @author aray
 * @abstract
 */
abstract class config {
	/**
	 * 配置内容
	 * @var array
	 */
	private static $config = array ();
	
	/**
	 * 载入自定义配置
	 * @param string $configFile  配置文件路径
	 */
	final public static function load ( $configFile ) {
		self::$config = array_merge ( self::$config, vane::load ( $configFile ) );
	}
	
	/**
	 * 获取配置信息
	 * @param string $key		配置项名称
	 * @param string $subkey	子项名称
	 * @return mixed			
	 */
	final public static function get ( $key, $subkey = null ) {
		$returnValue = null;
		if ( isset ( self::$config[$key] ) ) {
			$returnValue = self::$config[$key];
		}
		if ( $subkey != null ) {
			if ( isset ( $returnValue[$subkey] ) ) {
				$returnValue = $returnValue[$subkey];
			} else {
				$returnValue = null;
			}
		}
		return $returnValue;
	}
	
	/**
	 * 设置配置信息
	 * (如果指定子项名称，则值将会分配给子项名称)
	 * @param string $key		配置项名称
	 * @param mixed $val		值
	 * @param string $subkey	子项名称
	 */
	final public static function set ( $key, $val, $subkey = null ) {
		if ( $subkey == null ) {
			self::$config[$key] = $val;
		} else {
			if ( isset ( self::$config[$key][$subkey] ) ) {
				self::$config[$key][$subkey] = $val;
			}
		}
	}
}